package com.newshub.ai.model.dto;

import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;

/**
 * BI 查询响应 DTO
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BiQueryResponse {
    
    /**
     * 查询结果数据
     */
    private List<Map<String, Object>> data;
    
    /**
     * 图表配置 (JSON 格式)
     */
    private String chartConfig;
    
    /**
     * AI 生成的洞察
     */
    private String insights;
    
    /**
     * 生成的 SQL 语句（可选，用于调试）
     */
    private String sql;
    
    /**
     * 错误信息
     */
    private String error;
    
    /**
     * 查询执行时间（毫秒）
     */
    private Long executionTime;
    
    /**
     * 数据总行数
     */
    private Integer totalRows;
    
    /**
     * 查询状态
     */
    private String status;

    /**
     * 是否使用LLM生成SQL
     */
    private Boolean usedLLM;
    
    /**
     * 构造函数（简化版）
     */
    public BiQueryResponse(List<Map<String, Object>> data, String chartConfig, String insights) {
        this.data = data;
        this.chartConfig = chartConfig;
        this.insights = insights;
        this.status = "success";
        this.usedLLM = false;
    }
    
    /**
     * 错误响应构造函数
     */
    public BiQueryResponse(String error) {
        this.error = error;
        this.status = "error";
        this.usedLLM = false;
    }
}
